package com.bestcem.xm.member.grpc.service.param.openplatform;

import com.bestcem.xm.common.core.constant.RegTypes;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;
import java.util.List;

/**
 * @author dc.wang <dc.wang@idiaoyan.com>
 * @version V1.0
 * @date 2021/11/9 10:33
 */
@Getter
@Setter
@ToString
public class UpsertMemberParam {
    private String memberId;

    @NotNull(message = "组织id不能为空")
    @Pattern(regexp = RegTypes.OBJECT_ID, message = "组织id格式错误")
    private String orgId;

    /**
     * 系统id
     */
    private String sysId;

    /**
     * 联系人来源
     */
    private String source;

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 邮件
     */
    private String email;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 性别
     */
    private String gender;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 微信 unionid
     */
    private String unionId;

    /**
     * 区域信息
     */
    private String region;

    /**
     * 门店
     */
    private String store;

    /**
     * 联系人状态
     */
    private Integer status;

    /**
     * 备注
     */
    private String content;

    /**
     * 微信openid
     */
    private String openId;

    /**
     * 微信appid
     */
    private String appId;

    /**
     * 支付宝user_id
     */
    private String alipayUserId;

    /**
     * 联系人编号
     */
    private String memberNo;

    /**
     * 地址
     */
    private List<String> address;

    /**
     * 员工编号
     */
    private String employeeId;

    /**
     * 雇佣状态
     */
    private Integer employeeStatus;

    /**
     * 联系人类型
     */
    private Integer memberType;

    /**
     * 生日
     */
    private Date birthday;

    /**
     *  所属部门名称
     */
    private String department;

    /**
     * 职位名称
     */
    private String position;

    /**
     * 机构编号
     */
    private String instituteId;

    /**
     * 机构名称
     */
    private String instituteName;

    /**
     * 用户id
     */
    private String userId;

    /**
     * 扩展字段
     */
    @Valid
    private List<MemberFieldParam> fields;

    /**
     * 标签
     */
    @Valid
    private List<MemberLabelParam> labels;

    private String outNo;
}
